package main.java.fases;

import java.util.*;

import main.java.juego.Turno;
import main.java.tipos.CartaAlemania;
import main.java.tipos.TipoDeCartaAlemania;

public class LogisticaAlemana implements Fase{
	
	private Turno turnoActual;
	private List<CartaAlemania> cartasDeLiderazgo;
	
	private LogisticaAlemana (Turno turno){
		turnoActual = turno;
		cartasDeLiderazgo = new ArrayList<CartaAlemania>();
		turnoActual.obtenerCartasAlemania();
		cargaCartasLiderazgo();
	}
	
	public static LogisticaAlemana create(Turno turno){
		return new LogisticaAlemana(turno);
	}
	

	public void reemplazaCartasLiderazgo(CartaAlemania carta){
			//Comprobar antes que la carta es de liderazgo!!
			turnoActual.reemplazaCartasLiderazgo(carta);
			cartasDeLiderazgo.remove(carta);
	}
	
	private void cargaCartasLiderazgo(){
		//int indice=0;
		for(CartaAlemania c: turnoActual.dameCartasAlemanasEnJuego()){
			//indice++;
			if(c.dameTipoDeCartaAlemania().equals(TipoDeCartaAlemania.LIDERAZGO)){
				cartasDeLiderazgo.add(c);
			}	
		}
	}

	public List<CartaAlemania> getCartasDeLiderazgo() {
		return cartasDeLiderazgo;
	}
	
	public List<CartaAlemania> getCartasAlemanas() {
		return turnoActual.dameCartasAlemanasEnJuego();
	}
	

	public Turno getTurnoActual() {
		return turnoActual;
	}

	public void setCartasDeLiderazgo(List<CartaAlemania> cartasDeLiderazgo) {
		this.cartasDeLiderazgo = cartasDeLiderazgo;
	}
	
}
